package com.luyuan.crm.sale.model;

import java.util.Date;
import java.util.Set;

import com.luyuan.crm.member.model.Customer;
import com.luyuan.crm.user.Party;
import com.ruijie.foundation.bo.EntityObject;

public class Order extends EntityObject<String> {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    /**
     * 订单类型
     */
    private OrderType orderType;

    /**
     * 订单状态
     */
    private OrderStatus orderStatus;

    /**
     * 付款方式
     */
    private PaymentType paymentType;

    /**
     * 下单时间
     */
    private Date createTime;

    /**
     * 订单配方对应
     */
    private Set<OrderProduct> orderProducts;

    /**
     * 订单和配方的对应
     */
    private OrderFormula orderFormula;

    /**
     * 会员
     */
    private Customer customer;

    /**
     * 收货信息
     */
    private Delivery delivery;

    /**
     * 销售员
     */
    private Party saleman;

    /**
     * 制单人
     */
    private String saleName;

    /**
     * 售后
     */
    private Party support;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 运费
     */
    private double freight = 29;

    /**
     * 订单总额
     */
    private double amount;

    /**
     * 原总额
     */
    private double oldAmount;

    private int printCount;

    private int exportCount;

    /**
     * 促销
     */
    private OrderPromotion orderPromotion;

    public OrderType getOrderType() {
        return orderType;
    }

    public void setOrderType(OrderType orderType) {
        this.orderType = orderType;
    }

    public OrderStatus getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(OrderStatus orderStatus) {
        this.orderStatus = orderStatus;
    }

    public PaymentType getPaymentType() {
        return paymentType;
    }

    public void setPaymentType(PaymentType paymentType) {
        this.paymentType = paymentType;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Set<OrderProduct> getOrderProducts() {
        return orderProducts;
    }

    public void setOrderProducts(Set<OrderProduct> orderProducts) {
        this.orderProducts = orderProducts;
    }

    public OrderFormula getOrderFormula() {
        return orderFormula;
    }

    public void setOrderFormula(OrderFormula orderFormula) {
        this.orderFormula = orderFormula;
    }

    public Customer getCustomer() {
        return customer;
    }

    public void setCustomer(Customer customer) {
        this.customer = customer;
    }

    public Delivery getDelivery() {
        return delivery;
    }

    public void setDelivery(Delivery delivery) {
        this.delivery = delivery;
    }

    public Party getSaleman() {
        return saleman;
    }

    public void setSaleman(Party saleman) {
        this.saleman = saleman;
    }

    public Party getSupport() {
        return support;
    }

    public void setSupport(Party support) {
        this.support = support;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public double getAmount() {
        return amount;
    }

    public void setAmount(double amount) {
        this.amount = amount;
    }

    public double getOldAmount() {
        return oldAmount;
    }

    public void setOldAmount(double oldAmount) {
        this.oldAmount = oldAmount;
    }

    public String getSaleName() {
        return saleName;
    }

    public void setSaleName(String saleName) {
        this.saleName = saleName;
    }

    public int getPrintCount() {
        return printCount;
    }

    public void setPrintCount(int printCount) {
        this.printCount = printCount;
    }

    public int getExportCount() {
        return exportCount;
    }

    public void setExportCount(int exportCount) {
        this.exportCount = exportCount;
    }

    public double getFreight() {
        return freight;
    }

    public void setFreight(double freight) {
        this.freight = freight;
    }

    public OrderPromotion getOrderPromotion() {
        return orderPromotion;
    }

    public void setOrderPromotion(OrderPromotion orderPromotion) {
        this.orderPromotion = orderPromotion;
    }
}
